With proliferation of general-purpose computers, many networks have been implemented to connect the computers. Many different types of data are exchanged between the computers through the networks. Examples of such data types include audio data, video data, text data, picture data, game data, and/or other media data.
Different networks have different topologies. Examples of such network topologies include mesh networks, star networks, bus networks, ring networks, tree networks, etc. A mesh network allows several network nodes (i.e., several computers connected by the network) to route signals to several other nodes, and thereby allows network nodes to connect to each other via one or more hops through other network nodes. In a star network, each network node is connected to a central hub, so that all traffic that traverses the network passes through the central hub. In a bus network, all network nodes are connected to a single bus communication line, and a signal from one node travels in both directions of the bus until it finds a destination node. A ring network connects its network nodes in a closed loop or ring, and a signal from one node passes through each node in one direction of the ring until it finds a destination node. In a tree network, each network node is connected to a central hub through which all traffic that traverse the network passes, but some nodes are connected to the central hub via several hierarchies of intermediate hubs.
Different networks have different advantages and disadvantages. To establish communication between sets of computing devices, most solutions establish one type of network between the computing devices. Accordingly, these solutions enjoy certain advantages provided by their choice of network while also suffering from the disadvantages of their chosen network.